Spring Boot এবং Spring Data JPA ব্যবহার করে CRUD অপারেশন (Create, Read, Update, Delete)

Java Technologies - স্প্রিং বুট ওআরএম (Spring Boot ORM) - Spring Boot এর মধ্যে CRUD অপারেশন
178

Spring Boot এবং Spring Data JPA একটি শক্তিশালী কম্বিনেশন যা ডেটাবেস ম্যানেজমেন্টকে সহজ ও কার্যকর করে। CRUD অপারেশন অর্থাৎ Create, Read, Update, Delete-এর মাধ্যমে ডেটাবেসে ডেটা পরিচালনা করা হয়। Spring Boot এবং Spring Data JPA ব্যবহার করে সহজেই CRUD অপারেশন সম্পন্ন করা যায়।


প্রকল্পের প্রস্তুতি

Maven ডিপেনডেন্সি যোগ করা

প্রথমে আপনার pom.xml ফাইলটি আপডেট করুন:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <scope>runtime</scope>
</dependency>

application.properties ফাইল কনফিগার করা

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update

Entity ক্লাস তৈরি করা

ডেটাবেসে একটি টেবিল তৈরি করতে Entity ক্লাস ব্যবহার করা হয়।

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;

@Entity
public class Product {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private double price;

    // Getters and Setters
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }
}

Repository ইন্টারফেস তৈরি করা

Spring Data JPA ব্যবহার করে JpaRepository ইন্টারফেসটি এক্সটেন্ড করে CRUD অপারেশন সহজেই করা যায়।

import org.springframework.data.jpa.repository.JpaRepository;

public interface ProductRepository extends JpaRepository<Product, Long> {
}

Service ক্লাস তৈরি করা (ঐচ্ছিক)

সার্ভিস স্তর (Service Layer) ভালো প্র্যাকটিস হিসেবে ব্যবহৃত হয়।

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;

@Service
public class ProductService {

    @Autowired
    private ProductRepository repository;

    public List<Product> getAllProducts() {
        return repository.findAll();
    }

    public Optional<Product> getProductById(Long id) {
        return repository.findById(id);
    }

    public Product saveProduct(Product product) {
        return repository.save(product);
    }

    public void deleteProduct(Long id) {
        repository.deleteById(id);
    }
}

Controller ক্লাস তৈরি করা

Controller ক্লাস ব্যবহার করে CRUD অপারেশনের API তৈরি করা হয়।

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Optional;

@RestController
@RequestMapping("/products")
public class ProductController {

    @Autowired
    private ProductService service;

    // Create Product
    @PostMapping
    public Product createProduct(@RequestBody Product product) {
        return service.saveProduct(product);
    }

    // Read All Products
    @GetMapping
    public List<Product> getAllProducts() {
        return service.getAllProducts();
    }

    // Read Product by ID
    @GetMapping("/{id}")
    public Optional<Product> getProductById(@PathVariable Long id) {
        return service.getProductById(id);
    }

    // Update Product
    @PutMapping("/{id}")
    public Product updateProduct(@PathVariable Long id, @RequestBody Product product) {
        product.setId(id);
        return service.saveProduct(product);
    }

    // Delete Product
    @DeleteMapping("/{id}")
    public String deleteProduct(@PathVariable Long id) {
        service.deleteProduct(id);
        return "Product deleted with id: " + id;
    }
}

অ্যাপ্লিকেশন চালানো এবং API পরীক্ষা করা

Spring Boot অ্যাপ্লিকেশন চালানোর জন্য @SpringBootApplication এনোটেশন ব্যবহার করে মেইন ক্লাস তৈরি করুন।

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringBootCrudApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringBootCrudApplication.class, args);
    }
}

Spring Boot চালু করার পর Postman বা অন্য কোনো API টেস্টিং টুল ব্যবহার করে নিচের এন্ডপয়েন্টগুলো পরীক্ষা করতে পারেন:

  • POST: /products (নতুন প্রোডাক্ট যোগ করুন)
  • GET: /products (সমস্ত প্রোডাক্ট দেখুন)
  • GET: /products/{id} (নির্দিষ্ট প্রোডাক্ট দেখুন)
  • PUT: /products/{id} (প্রোডাক্ট আপডেট করুন)
  • DELETE: /products/{id} (প্রোডাক্ট মুছে ফেলুন)

সারাংশ

Spring Boot এবং Spring Data JPA ব্যবহার করে CRUD অপারেশন তৈরি করা খুবই সহজ এবং কার্যকর। এর মাধ্যমে জাভা ডেভেলপাররা ডেটাবেস পরিচালনার জটিলতা থেকে মুক্তি পেয়ে দ্রুত অ্যাপ্লিকেশন তৈরি করতে পারেন।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...